热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网络||CDN

CDNCDNCDN:ContentDeliveryNetwork,内容分发网络,一般也叫作缓存服务器是在客户端和服务器之间增加了一个缓存区,导致每次客户端访问一个目标服务器的时候,

CDN


CDN

CDN:Content Delivery Network,内容分发网络,一般也叫作缓存服务器

是在客户端和服务器之间增加了一个缓存区,导致每次客户端访问一个目标服务器的时候,不需要每次直接到源服务器获取内容



基本思路:

尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,是内容传输的更快、更稳定。

通过在网络各处放置结点服务器所构成的在现有的互联网基础上的一层智能虚拟网络

CDN系统能够实时的根据网络流量和各节点的连接、负载状况以及用户的距离和响应时间等综合信息将用户的请求重新定向到距离用户最近的服务节点上

目的

使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率


  • 加速网站的访问


  • 实现跨运营商,跨地域的全网覆盖


  • 保障网站安全


    • CDN的负载均衡和分布式存储技术,可以加强网站的可靠性,相当无无形中给你的网站添加了一把保护伞,应对绝大部分的互联网攻击事件。防攻击系统也能避免网站遭到恶意攻击。



  • 异地备援


    • 当某个服务器发生意外故障时,系统将会调用其他临近的健康服务器节点进行服务,进而提供接近100%的可靠性,这就让你的网站可以做到永不宕机。




基础架构:

CDN网络是由一个DNS服务器和几台缓存服务器组成


  1. 当用户点击网站页面上的内容URL,经过本地DNS解析只获得CNAME,DNS系统会将最终域名解析全交给CNAME指向的CDN专用DNS服务器


  2. CDN的DNS服务器将CDN的全局负载均衡设备的IP地址返回给用户(这个全局负载均衡设备可以管理到多个区域负载均衡设备)


  3. 用户向CDN的全局负载均衡设备发起内容请求的URL访问请求


  4. CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求


  5. 区域负载均衡服务器会为用户选择一台合适的缓存服务器提供服务。


    • 选择的依据包括:


    • 根据用户ip地址,判断那一台缓存服务器距离用户最近


    • 根据用户所请求的URl中携带的内容名称,判断那一台服务器上有用户所需内容


    • 查询各个服务器的当前负载情况,判断那一台服务器尚有服务能力


    根据以上的综合分析,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址


  6. 全局负载均衡设备把缓存服务器的IP地址返回给用户


  7. 用户向这台缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。


    • 如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台缓存服务器就要向他的上一级缓存服务器请求内容,直到追溯到网站的源服务器将内容拉到本地




服务模式

CDN就是一个策略性部署的整体系统,包括分布式存储、负载均衡、网络请求重定向和内容管理四个方面,而内容管理和全局的网络流量管理是CDN的核心所在。

实例

通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的cache服务器内,通过DNS负载均衡的技术,判断用户来源就近访问cache服务器取得所需的内容,解决Internet网络拥塞状况,提高用户访问网站的响应速度,如同提供了多个分布在各地的加速器,以达到快速、可冗余的为多个网站加速的目的。

CDN的一些名词

1、Origin Server源站

做 CDN 之前的客户真正的服务器。

2、User

访问者,也就是要访问网站的网民。

3、Last Mile最后一公里,也就是网民到他所访问到的 CDN 服务器之间的路径。

4、域名域名是Internet网络上的一个服务器或一个网络系统的名字,全世界,没有重复的域名。

5、CNAME记录

它是一个别名记录( Canonical Name );当 DNS 系统在查询 CNAME 左面的名称的时候,都会转向 CNAME 右面的名称再进行查询,一直追踪到最后的 PTR 或 A 名称,成功查询后才会做出回应,否则失败。

6、CNAME域名

CDN的域名加速需要用到CNAME记录,在阿里云控制台配置完成CDN加速后,您会得到一个加速后的域名,称之为CNAME域名(该域名一定是* . * kunlun.com), 用户需要将自己的域名作CNAME指向这个* . * kunlun.com的域名后,域名解析的工作就正式转向阿里云,该域名所有的请求都将转向阿里云CDN的节点。

CNAME域名就是一个加速域名,也就是在原先域名之后再次添加一些域名,对于原先域名进行了补充

7、DNS

DNS即Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络可以识别的ip地址。人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。

比如:上网时输入的百度一下,你就知道会自动转换成为220.181.112.143

8、边缘节点

也称CDN节点、Cache节点等;是相对于网络的复杂结构而提出的一个概念,指距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度。其作用是将访问量较大的网页内容和对象保存在服务器前端的专用cache设备上,以此来提高网站访问的速度和质量。

9、cache

cache高速缓冲存储器一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。存储器的高速缓冲存储器存储了频繁访问的RAM位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主RAM存储器速度快,所以当RAM的访问速度低于微处理器的速度时,常使用高速缓冲存储器。

CDN与传统网站访问的区别:

传统访问访问:

使用了CDN的网站访问:

与传统访问方式不同,CDN网络则是在用户和服务器之间增加缓存层,将用户的访问请求引导到最优的缓存节点而不是服务器源站点,从而加速访问速度。

完整的CDN工作流程:

总结一下CDN的工作原理:通过权威DNS服务器来实现最优节点的选择,通过缓存来减少源站的压力。

参考文献:


  1. 知乎:视界云


  2. 知乎:阿里云云栖社区




推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
author-avatar
蜡笔小昕廖廖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有